Flash memory devices store data to and retrieve data from transistors. Commonly, the transistors are grouped into pages, pages are grouped into erasure blocks, and erasure blocks are grouped into programmable devices. Data is written to flash devices at the page level, and data is erased from flash devices at the block level. Before writing to a particular page, all of the pages in the block are erased.
One issue with flash memory devices has been limited life times. The flash transistors are only able to be programmed and erased a finite amount of times. Another issue has been writing performance. Although data is generally read from flash devices relatively quickly, writing data to and erasing data from flash devices can be time consuming.